Strings are sequences of characters. Strings are written as sequences of characters enclosed within doublequotes (<#1351#>;SPMquot;<#1351#>). A doublequote can be written inside a string only by escaping it with a backslash (<#1352#><#1352#>), as in
A backslash can be written inside a string only by escaping it with another backslash. Scheme does not specify the effect of a backslash within a string that is not followed by a doublequote or backslash.
A string constant may continue from one line to the next, but the exact contents of such a string are unspecified.
The <#1357#>length<#1357#> of a string is the number of characters that it contains. This number is a non-negative integer that is fixed when the string is created. The <#1358#>valid indexes<#1358#> of a string are the exact non-negative integers less than the length of the string. The first character of a string has index 0, the second has index 1, and so on.
In phrases such as ``the characters of <#1359#>string<#1359#> beginning with index <#1360#>start<#1360#> and ending with index <#1361#>end<#1361#>,'' it is understood that the index <#1362#>start<#1362#> is inclusive and the index <#1363#>end<#1363#> is exclusive. Thus if <#1364#>start<#1364#> and <#1365#>end<#1365#> are the same index, a null substring is referred to, and if <#1366#>start<#1366#> is zero and <#1367#>end<#1367#> is the length of <#1368#>string<#1368#>, then the entire string is referred to.
Some of the procedures that operate on strings ignore the difference between upper and lower case. The versions that ignore case have <#2172#>``<#1369#>-ci<#1369#>''<#2172#> (for ``case insensitive'') embedded in their names.